import 'storage.dart';

class SearchServices {
  // 保存历史记录
  static setHistoryData(String keyWords) async {
    // 获取本地记录里面的数据
    List? searchListData = await Storage.getData('searchList');
    // 判断本地存储是否有数据
    if (searchListData != null) {
      // 如果有数据，读取本都存储的数据
      var hasData = searchListData.any((v) {
        return v == keyWords;
      });
      // 判断本地存储中是否有当期那数据，如果有不操作，如果没有，本地存储的诗句和当前数据拼接后重新写入
      if (!hasData) {
        searchListData.add(keyWords);
        await Storage.setData('searchList', searchListData);
      }
    } else {
      // 如果没有数据，直接当前数据放在数组中写入本地存储
      List tempList = [];
      tempList.add(keyWords);

      await Storage.setData('searchList', tempList);
    }
  }

  // 获取历史搜索记录
  static Future<List> getHistoryData() async {
    List? searchListData = await Storage.getData('searchList');
    if (searchListData != null) {
      return searchListData;
    } else {
      return [];
    }
  }

  // 删除搜索记录
  static deleteHistoryData(String keyWords) async {
    List? searchListData = await Storage.getData('searchList');
    if (searchListData != null) {
      searchListData.remove(keyWords);
      await Storage.setData('searchList', searchListData);
    }
  }

  // 清空搜索记录
  static clearHistoryData() async {
    await Storage.clear('searchList');
  }
}
